package com.chinacoal.microservice.pojo;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author zhuliang
 * @version V1.0
 * @Description: 通知单
 * @date 2020-11-27 9：26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "通知单")
public class CcmsSmartleasingNotice implements Serializable {

    @ApiModelProperty(value = "uuid主键")
    @TableId(value = "pk_notice_id")
    private String pkNoticeId;

    @ApiModelProperty(value = "创建人")
    private Integer createdBy;

    @ApiModelProperty(value = "创建时间")
    private Date creationDate;

    @ApiModelProperty(value = "最后变更人")
    private Integer lastUpdatedBy;

    @ApiModelProperty(value = "最后变更时间")
    private Date lastUpdateDate;

    @ApiModelProperty(value = "删除标记,默认为'false'")
    private Byte deleteSign;

    @ApiModelProperty(value = "房租日期，年月")
    private Date expenseMonth;

    @ApiModelProperty(value = "费用信息外键")
    private String fkExpenseManagId;

    @ApiModelProperty(value = "承租人姓名")
    private String tenantName;

    @ApiModelProperty(value = "合同编码")
    private String contractNumber;

    @ApiModelProperty(value = "单元编码")
    private String roomNomber;

    @ApiModelProperty(value = "地址：楼宇名称+楼层+房间号")
    private String address;

    @ApiModelProperty(value = "水费编码")
    private String waterCostCode;

    @ApiModelProperty(value = "电费编码")
    private String electricCostCode;

    @ApiModelProperty(value = "煤气费编码")
    private String coalGasCostCode;

    @ApiModelProperty(value = "本月水行度")
    private BigDecimal monthWaterMobility;

    @ApiModelProperty(value = "上月水行度")
    private BigDecimal lastMonthWaterMobility;

    @ApiModelProperty(value = "水用量")
    private BigDecimal waterConsumption;

    @ApiModelProperty(value = "水损量")
    private BigDecimal waterLossConsumption;

    @ApiModelProperty(value = "(小于)水的吨数")
    private Integer lessThanWater;

    @ApiModelProperty(value = "(大于)水的吨数")
    private Integer greaterThanWater;

    @ApiModelProperty(value = "(小于)水费的单价")
    private BigDecimal lessUnitPriceOfWater;

    @ApiModelProperty(value = "(大于)水费的单价")
    private BigDecimal greaterUnitPriceOfWater;

    @ApiModelProperty(value = "(中间)水费的单价")
    private BigDecimal middleUnitPriceOfWater;

    @ApiModelProperty(value = "水损系数")
    private BigDecimal waterLossCoefficient;

    @ApiModelProperty(value = "水费税率")
    private BigDecimal waterTariffRate;

    @ApiModelProperty(value = "加压系数")
    private BigDecimal pressurizationcoefficient;

    @ApiModelProperty(value = "加压管理费")
    private BigDecimal pressureAdministrationCosts;

    @ApiModelProperty(value = "水费税金")
    private BigDecimal waterTariff;

    @ApiModelProperty(value = "水费小计")
    private BigDecimal waterRentSubtotal;

    @ApiModelProperty(value = "上月电行度")
    private BigDecimal lastMonthElectricityMobility;

    @ApiModelProperty(value = "本月电行度")
    private BigDecimal monthElectricityMobility;

    @ApiModelProperty(value = "(小于)用电量")
    private Integer lessElectricityConsumption;

    @ApiModelProperty(value = "(大于)用电量")
    private Integer greaterElectricityConsumption;

    @ApiModelProperty(value = "(小于)电费单价")
    private BigDecimal lessUnitPriceOfElectricity;

    @ApiModelProperty(value = "(大于)电费单价")
    private BigDecimal greaterUnitPriceOfElectricity;

    @ApiModelProperty(value = "(中间)电费单价")
    private BigDecimal middleUnitPriceOfElectricity;

    @ApiModelProperty(value = "倍率(电)")
    private BigDecimal electricRate;

    @ApiModelProperty(value = "电损系数")
    private BigDecimal electricLossCoefficient;

    @ApiModelProperty(value = "公共用电分摊")
    private BigDecimal publicElectricitySharing;

    @ApiModelProperty(value = "实际用量")
    private BigDecimal electricActualConsumption;

    @ApiModelProperty(value = "电费小计")
    private BigDecimal electricRentSubtotal;

    @ApiModelProperty(value = "本月煤气行度")
    private BigDecimal monthGasMobility;

    @ApiModelProperty(value = "上月煤气行度")
    private BigDecimal lastGasMobility;

    @ApiModelProperty(value = "本月用气量")
    private BigDecimal monthGasConsumption;

    @ApiModelProperty(value = "小于煤气量")
    private Integer lessGasVolume;

    @ApiModelProperty(value = "大于煤气量")
    private Integer greaterGasVolume;

    @ApiModelProperty(value = "第一阶段单价")
    private BigDecimal oneUnitPrice;

    @ApiModelProperty(value = "第二阶段单价")
    private BigDecimal twoUnitPrice;

    @ApiModelProperty(value = "第三阶段单价")
    private BigDecimal threeUnitPrice;

    @ApiModelProperty(value = "煤气费小计")
    private BigDecimal gasRentSubtotal;

    @ApiModelProperty(value = "煤气气费")
    private BigDecimal gasShortage;

    @ApiModelProperty(value = "煤气欠费")
    private BigDecimal gasArrears;

    @ApiModelProperty(value = "换表费")
    private BigDecimal gasChangeWatchSpense;

    @ApiModelProperty(value = "房屋租金")
    private BigDecimal monthlyRent;

    @ApiModelProperty(value = "电话费")
    private BigDecimal telephoneRate;

    @ApiModelProperty(value = "基本水费")
    private BigDecimal basicWaterPrice;

    @ApiModelProperty(value = "综合管理费")
    private BigDecimal comprehensiveManagementRate;

    @ApiModelProperty(value = "电梯费")
    private BigDecimal elevatorRate;

    @ApiModelProperty(value = "垃圾处理费")
    private BigDecimal trashHandlingFee;

    @ApiModelProperty(value = "排水费")
    private BigDecimal drainageFee;

    @ApiModelProperty(value = "卫生费")
    private BigDecimal sanitationFee;

    @ApiModelProperty(value = "电梯费单价")
    private BigDecimal unitPriceElevatorFee;

    @ApiModelProperty(value = "垃圾处理单价")
    private BigDecimal unitPriceGarbageTreatment;

    @ApiModelProperty(value = "垃圾处理费倍率")
    private BigDecimal garbageTreatmentMagnification;

//    @ApiModelProperty(value = "排水费单价")
//    private BigDecimal unitPriceDrainageFee;

    @ApiModelProperty(value = "排水费系数")
    private BigDecimal drainageCoefficient;

    @ApiModelProperty(value = "(小于)排水费的单价")
    private BigDecimal lessUnitPriceDrainageFee;

    @ApiModelProperty(value = "(大于)排水费的单价")
    private BigDecimal greaterUnitPriceDrainageFee;

    @ApiModelProperty(value = "(中间)排水费的单价")
    private BigDecimal middleUnitPriceDrainageFee;

    @ApiModelProperty(value = "电视费/煤保")
    private BigDecimal gasInsurance;

    @ApiModelProperty(value = "其他小计")
    private BigDecimal otherSubtotal;

    @ApiModelProperty(value = "人民币总额")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "经手人")
    private String handler;

    @ApiModelProperty(value = "缴费时间")
    private Date paymentTime;

    @ApiModelProperty(value = "应收费用")
    private BigDecimal expensesReceivable;

    @ApiModelProperty(value = "实收费用")
    private BigDecimal paidInExpenses;

    @ApiModelProperty(value = "缴费方式，0线上缴费；1线下缴费")
    private String paymentMethod;

    @ApiModelProperty(value = "凭证")
    private String voucher;

    @ApiModelProperty(value = "缴费说明")
    private String paymentInstructions;

    @ApiModelProperty(value = "水费税率")
    private BigDecimal waterTaxRate;

    @ApiModelProperty(value = "水费税务分类编码")
    private String waterClassificationCode;

    @ApiModelProperty(value = "电费税率")
    private BigDecimal electricTaxRate;

    @ApiModelProperty(value = "电费税务分类编码")
    private String electricClassificationCode;

    @ApiModelProperty(value = "房租税率")
    private BigDecimal rentTaxRate;

    @ApiModelProperty(value = "房租税务分类编码")
    private String rentClassificationCode;

    @ApiModelProperty(value = "管理费税率")
    private BigDecimal managementExpenseTaxRate;

    @ApiModelProperty(value = "管理费税务分类编码")
    private String managementExpenseClassificationCode;

    @ApiModelProperty(value = "卫生清洁费税率")
    private BigDecimal sanitaryFeeTaxRate;

    @ApiModelProperty(value = "卫生清洁费税务分类编码")
    private String sanitaryFeeClassificationCode;

    @ApiModelProperty(value = "电梯费税率")
    private BigDecimal elevatorFeeTaxRate;

    @ApiModelProperty(value = "电梯费税务分类编码")
    private String elevatorFeeClassificationCode;

    @ApiModelProperty(value = "开票信息，外键id")
    private String fkInvoiceRecordId;

    @ApiModelProperty(value = "订单号(本地生成)")
    private String orderNumber;

    @ApiModelProperty(value = "微信支付订单号")
    private String wxOrderNumber;

    @ApiModelProperty(value = "基本电价")
    private BigDecimal basicElectricityPrice;

    @ApiModelProperty(value = "其他费用")
    private BigDecimal otherPrice;

    @ApiModelProperty(value = "本体维修基金")
    private BigDecimal maintenanceFund;

    @ApiModelProperty(value = "发票状态，0待开票；1已开票")
    @TableField(exist = false)
    private String invoiceStatus;

    @ApiModelProperty(value = "房租发票状态，0待开票；1已开票;2开票中")
    @TableField(exist = false)
    private String monthlyInvoiceStatus;

    @ApiModelProperty(value = "房间房号（只查询）")
    @TableField(exist = false)
    private String houseNumber;

    @ApiModelProperty(value = "楼宇名称（只查询）")
    @TableField(exist = false)
    private String buildingName;

    @ApiModelProperty(value = "楼层（只查询）")
    @TableField(exist = false)
    private String floor;

    @ApiModelProperty(value = "建筑面积（只查询）")
    @TableField(exist = false)
    private BigDecimal constructionArea;

    @ApiModelProperty(value = "前三月的水电煤信息和本月的录入水电煤信息")
    @TableField(exist = false)
    private CcmsSmartleasingExpenseEntry expenseEntry;

    @ApiModelProperty(value = "市名称（开票查询用）")
    @TableField(exist = false)
    private String city;

    @ApiModelProperty(value = "区名称（开票查询用）")
    @TableField(exist = false)
    private String area;

    @ApiModelProperty(value = "商圈名称（开票查询用）")
    @TableField(exist = false)
    private String street;

    @ApiModelProperty(value = "租户类型，个人(0) or 企业(1)")
    @TableField(exist = false)
    private String tenantType;

    @ApiModelProperty(value = "个人&&企业-身份证号 or 营业执照编号")
    @TableField(exist = false)
    private String idcardNumber;

    @ApiModelProperty(value = "个人&&企业-联系电话")
    @TableField(exist = false)
    private String contactPhone;

    @ApiModelProperty(value = "管理处邮箱")
    @TableField(exist = false)
    private String email;

    @ApiModelProperty(value = "抄表状态")
    @TableField(exist = false)
    private String meterReadingStatus;

    @ApiModelProperty(value = "开票信息")
    @TableField(exist = false)
    private List<CcmsSmartleasingInvoiceRecord> invoiceRecord;

    @ApiModelProperty(value = "房间外键id")
    @TableField(exist = false)
    private String fkRoomId;

    @ApiModelProperty(value = "开票方式")
    @TableField(exist = false)
    private String invoiceMethod;

    @ApiModelProperty(value = "合同结束时间")
    @TableField(exist = false)
    private Date contractEndTime;

    @ApiModelProperty(value = "押金")
    @TableField(exist = false)
    private BigDecimal deposit;

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "热水编码")
    private String hotWaterCostCode;

    @ApiModelProperty(value = "上月热水行度")
    private BigDecimal lastMonthHotWaterMobility;

    @ApiModelProperty(value = "(本月热水行度")
    private BigDecimal monthHotWaterMobility;

    @ApiModelProperty(value = "热水用量")
    private BigDecimal hotWaterConsumption;

    @ApiModelProperty(value = "热水费小计")
    private BigDecimal hotWaterRentSubtotal;

    @ApiModelProperty(value = "热水单价")
    @TableField(exist = false)
    private BigDecimal unitPriceHotWater;
}
